@extends('layouts.app')

@section('content')
    <div class="content">
        <div class="header">
            <ul class="breadcrumb">
                <li>UK管理</li>
                <li><a href="">UK初始化</a> </li>
            </ul>
        </div>
        <div class="main-content">
            <ul class="nav nav-tabs">
                <li class="active"><a href="#home" data-toggle="tab">添加</a></li>
            </ul>

            <div class="row">
                <div class="col-md-12">
                    <br>
                    <div id="myTabContent" class="tab-content">
                        <div class="tab-pane active in" id="home">
                            <form id="frmlogin" class="form-horizontal" method="post">
                                <input type="hidden" name="_token" value="{{ csrf_token() }}">
                                <input name="key_id" type="text" id="KeyID" style="VISIBILITY: hidden">
                                <div class="form-group">
                                    <label for="input1" class="pull-left w120 control-label">key_id</label>
                                    <div class="col-sm-6">
                                        <input type="text" class="form-control" id="key_id" value="" readonly style=" width:196px;height:32px;">
                                    </div>
                                </div>

                                <div class="form-group">
                                    <label for="input1" class="pull-left control-label" style="width:120px;">警员级别</label>
                                    <div class="col-sm-6">
                                        <select name="dengji" id="dengji" class="form-control" style=" width:196px;height:32px;">
                                            <option value="">请选择级别</option>
                                            <option value="1">总队</option>
                                            <option value="2">支队</option>
                                            <option value="3">大队</option>
                                            <option value="4">派出所</option>
                                        </select>
                                    </div>
                                </div>

                                <div class="form-group city" style="display: none">
                                    <label for="input1" class="pull-left w120 control-label">市</label>
                                    <div class="col-sm-6">
                                        <select name="city" id="city" class="form-control" style=" width:196px;height:32px;">
                                            <option value="">请选择</option>
                                            @foreach($city as $k=>$v)
                                                <option value="{{$v->id}}">{{$v->name}}</option>
                                            @endforeach
                                        </select>
                                    </div>
                                </div>

                                <div class="form-group area" style="display: none">
                                    <label for="input1" class="pull-left w120 control-label">区</label>
                                    <div class="col-sm-6">
                                        <select name="area" id="area" class="form-control" style=" width:196px;height:32px;">
                                            <option value="">请选择</option>
                                        </select>
                                    </div>
                                </div>

                                <div class="form-group org_id" style="display: none">
                                    <label for="input1" class="pull-left w120 control-label">派出所</label>
                                    <div class="col-sm-6">
                                        <select name="org_id" id="org_id" class="form-control" style=" width:196px;height:32px;">
                                            <option value="">请选择</option>
                                        </select>
                                    </div>
                                </div>

                                <div class="btn-toolbar list-toolbar btn-toolbar2">
                                    <button type="button" class="btn btn-primary" onclick="login_onclick()">激活</button>
                                    <a href="javascript:history.back(-1);" class="btn btn-back">返回</a>
                                </div>
                            </form>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script src="{{ URL::asset('/') }}js/Syunew3.js"></script><!--定要包含有我们的UK单元包-->
    <script type="text/javascript">

        window.onload = function(){
            load();
        };
        $(document).on("change",'#dengji', function(){
            var dengji = $("#dengji").val();
            if(dengji == 1){
                $(".city").attr('style','display: none');
                $(".area").attr('style','display: none');
                $(".org_id").attr('style','display: none');
            }
            if(dengji == 2){
                $(".city").attr('style','');
            }
            if(dengji == 3){
                $(".city").attr('style','');
                $(".area").attr('style','');
            }
            if(dengji == 4){
                $(".city").attr('style','');
                $(".area").attr('style','');
                $(".org_id").attr('style','');
            }

        });

        $(document).on("change",'#city', function(){

            $('#area option:gt(0)').remove();
            $('#org_id option:gt(0)').remove();
            //alert(1);die;
            var cid = $("#city").val();
            var url = "{{url('admin/getArea')}}";
            $.getJSON(url,{cid:cid},function(json){
                /*清空原有的选项*/
                if(json != ''){
                    $.each(json,function(index,array){
                        var option = "<option value='"+array['id']+"'";
                        option += ">"+array['name']+"</option>";
                        $("#area").append(option);
                    });
                }
            });
        });

        $(document).on("change",'#area', function(){
            $('#org_id option:gt(0)').remove();
            var cid = $("#area").val();
            var url = "{{url('admin/getArea')}}";
            $.getJSON(url,{cid:cid},function(json){
                /*清空原有的选项*/
                if(json != ''){
                    $.each(json,function(index,array){
                        var option = "<option value='"+array['id']+"'";
                        option += ">"+array['name']+"</option>";
                        $("#org_id").append(option);
                    });
                }
            });
        });

        $(function(){
            $('.valid').on('click',function(){
                if(this.checked){
                    $(this).parents('.panel').children('.panel-body').find('input').prop("checked", true);
                }else{
                    $(this).parents('.panel').children('.panel-body').find('input').prop("checked", false);
                }
            })
        })
    </script>
    <SCRIPT LANGUAGE=javascript>

        var bConnect=0;

        function load()
        {
            //如果是IE10及以下浏览器，则跳过不处理
            if(navigator.userAgent.indexOf("MSIE")>0 && !navigator.userAgent.indexOf("opera") > -1) return;
            try
            {
                var s_pnp=new SoftKey3W();
                s_pnp.Socket_UK.onopen = function()
                {
                    bConnect=1;//代表已经连接，用于判断是否安装了客户端服务
                }

                //在使用事件插拨时，注意，一定不要关掉Sockey，否则无法监测事件插拨
                s_pnp.Socket_UK.onmessage =function got_packet(Msg)
                {
                    var PnpData = JSON.parse(Msg.data);
                    if(PnpData.type=="PnpEvent")//如果是插拨事件处理消息
                    {
                        if(PnpData.IsIn)
                        {
                            //alert("UKEY已被插入");
                            //$('.uk').val('UKEY已插入');
                            //alert("UKEY已被插入，被插入的锁的路径是："+PnpData.DevicePath);

                            //插入uk后，检测该uk是否绑定企业账号
                            var DevicePath,ID_1,ID_2,ret;
                            //由于是使用事件消息的方式与服务程序进行通讯，
                            //好处是不用安装插件，不分系统及版本，控件也不会被拦截，同时安装服务程序后，可以立即使用，不用重启浏览器
                            //不好的地方，就是但写代码会复杂一些
                            var s_simnew1=new SoftKey3W(); //创建UK类

                            s_simnew1.Socket_UK.onopen = function() {
                                s_simnew1.ResetOrder();//这里调用ResetOrder将计数清零，这样，消息处理处就会收到0序号的消息，通过计数及序号的方式，从而生产流程
                            }


                            //写代码时一定要注意，每调用我们的一个UKEY函数，就会生产一个计数，即增加一个序号，较好的逻辑是一个序号的消息处理中，只调用我们一个UKEY的函数
                            s_simnew1.Socket_UK.onmessage =function got_packet(Msg)
                            {
                                var UK_Data = JSON.parse(Msg.data);
                                if(UK_Data.type!="Process")return ;//如果不是流程处理消息，则跳过
                                switch(UK_Data.order)
                                {
                                    case 0:
                                    {
                                        s_simnew1.FindPort(0);//发送命令取UK的路径
                                    }
                                        break;//!!!!!重要提示，如果在调试中，发现代码不对，一定要注意，是不是少了break,这个少了是很常见的错误
                                    case 1:
                                    {
                                        if( UK_Data.LastError!=0){window.alert ( "未发现加密锁，请插入加密锁");s_simnew1.Socket_UK.close();return false;}
                                        DevicePath=UK_Data.return_value;//获得返回的UK的路径
                                        s_simnew1.GetID_1(DevicePath); //发送命令取ID_1
                                    }
                                        break;
                                    case 2:
                                    {
                                        if( UK_Data.LastError!=0){ window.alert("返回ID号错误，错误码为："+UK_Data.LastError.toString());s_simnew1.Socket_UK.close();return false;}
                                        ID_1=UK_Data.return_value;//获得返回的UK的ID_1
                                        s_simnew1.GetID_2(DevicePath); //发送命令取ID_2
                                    }
                                        break;
                                    case 3:
                                    {
                                        if( UK_Data.LastError!=0){ window.alert("取得ID错误，错误码为："+UK_Data.LastError.toString());s_simnew1.Socket_UK.close();return false;}
                                        ID_2=UK_Data.return_value;//获得返回的UK的ID_2

                                        var key_id=toHex(ID_1)+toHex(ID_2);

                                        //console.log(uk_id);

                                        if(key_id){
                                            var url = "{{url('uk/check_reg')}}";
                                            $.ajax({
                                                type: 'POST',
                                                url: url,
                                                data: {'key_id':key_id,'_token':'{{csrf_token()}}'},
                                                success: function(data){
                                                    if(data.status == 0){
                                                        $('#key_id').val(key_id);
                                                        alert("UKEY已插入");
                                                    }
                                                    if(data.status == 1){
                                                        alert('该UKEY已经激活，请勿重复操作');die;
                                                    }
                                                }
                                            });
                                        }


                                        //!!!!!注意，这里一定要主动提交，不能用提交类型的按钮，否则无法完全处理所有的消息


                                        //所有工作处理完成后，关掉Socket
                                        s_simnew1.Socket_UK.close();
                                    }
                                        break;
                                }
                            }

                        }
                        else
                        {
                            $('#key_id').val('');
                            alert("UKEY已被拨出");
                            //alert("UKEY已被拨出，被拨出的锁的路径是："+PnpData.DevicePath);
                        }
                    }
                }

                s_pnp.Socket_UK.onclose = function()
                {

                }
            }
            catch(e)
            {
                alert(e.name + ": " + e.message);
                return false;
            }
        }

        var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');

        function toHex( n ) {

            var result = ''
            var start = true;

            for ( var i=32; i>0; ) {
                i -= 4;
                var digit = ( n >> i ) & 0xf;

                if (!start || digit != 0) {
                    start = false;
                    result += digitArray[digit];
                }
            }

            return ( result == '' ? '0' : result );
        }

        function login_onclick()
        {

            //如果是IE10及以下浏览器，则使用AVCTIVEX控件的方式
            if(navigator.userAgent.indexOf("MSIE")>0 && !navigator.userAgent.indexOf("opera") > -1) return Handle_IE10();

            //判断是否安装了服务程序，如果没有安装提示用户安装
            if(bConnect==0)
            {
                window.alert ( "未能连接服务程序，请确定服务程序是否安装。");return false;
            }
            try
            {
                var DevicePath,ID_1,ID_2,ret;

                //由于是使用事件消息的方式与服务程序进行通讯，
                //好处是不用安装插件，不分系统及版本，控件也不会被拦截，同时安装服务程序后，可以立即使用，不用重启浏览器
                //不好的地方，就是但写代码会复杂一些
                var s_simnew1=new SoftKey3W(); //创建UK类

                s_simnew1.Socket_UK.onopen = function() {
                    s_simnew1.ResetOrder();//这里调用ResetOrder将计数清零，这样，消息处理处就会收到0序号的消息，通过计数及序号的方式，从而生产流程
                }


                //写代码时一定要注意，每调用我们的一个UKEY函数，就会生产一个计数，即增加一个序号，较好的逻辑是一个序号的消息处理中，只调用我们一个UKEY的函数
                s_simnew1.Socket_UK.onmessage =function got_packet(Msg)
                {
                    var UK_Data = JSON.parse(Msg.data);
                    if(UK_Data.type!="Process")return ;//如果不是流程处理消息，则跳过
                    switch(UK_Data.order)
                    {
                        case 0:
                        {
                            s_simnew1.FindPort(0);//发送命令取UK的路径
                        }
                            break;//!!!!!重要提示，如果在调试中，发现代码不对，一定要注意，是不是少了break,这个少了是很常见的错误
                        case 1:
                        {
                            if( UK_Data.LastError!=0){window.alert ( "请插入UKEY");s_simnew1.Socket_UK.close();return false;}
                            DevicePath=UK_Data.return_value;//获得返回的UK的路径
                            s_simnew1.GetID_1(DevicePath); //发送命令取ID_1
                        }
                            break;
                        case 2:
                        {
                            if( UK_Data.LastError!=0){ window.alert("返回ID号错误，错误码为："+UK_Data.LastError.toString());s_simnew1.Socket_UK.close();return false;}
                            ID_1=UK_Data.return_value;//获得返回的UK的ID_1
                            s_simnew1.GetID_2(DevicePath); //发送命令取ID_2
                        }
                            break;
                        case 3:
                        {
                            if( UK_Data.LastError!=0){ window.alert("取得ID错误，错误码为："+UK_Data.LastError.toString());s_simnew1.Socket_UK.close();return false;}
                            ID_2=UK_Data.return_value;//获得返回的UK的ID_2

                            //检测UK是否绑定企业账号，未绑定则进行绑定，绑定则登录
                            frmlogin.KeyID.value=toHex(ID_1)+toHex(ID_2);

                            frmlogin.submit ();

                            //所有工作处理完成后，关掉Socket
                            s_simnew1.Socket_UK.close();
                        }
                            break;
                    }
                }
                s_simnew1.Socket_UK.onclose = function(){

                }
                return true;
            }

            catch(e)
            {
                alert(e.name + ": " + e.message);
                return false;
            }

        }

        function Handle_IE10()
        {
            try
            {
                var DevicePath,mylen,ret;
                var s_simnew1;
                //创建控件
                s_simnew1=new ActiveXObject("Syunew3A.s_simnew3");

                DevicePath = s_simnew1.FindPort(0);//'来查找加密锁，0是指查找默认端口的锁
                if( s_simnew1.LastError!= 0 )
                {
                    window.alert ( "未发现加密锁，请插入加密锁");return false;
                }
                else
                {

                    //获取锁的ID
                    frmlogin.KeyID.value=toHex(s_simnew1.GetID_1(DevicePath))+toHex(s_simnew1.GetID_2(DevicePath));
                    if( s_simnew1.LastError!= 0 )
                    {
                        window.alert( "获取ID错误,错误码是"+s_simnew1.LastError.toString());
                        return false;
                    }
                    frmlogin.submit ();
                    return true;
                }
            }

            catch(e)
            {
                alert(e.name + ": " + e.message+"。可能是没有安装相应的控件或插件");
                return false;
            }

        }

    </SCRIPT>
@stop